package com.jereh.topnews.activity;

import android.os.Bundle;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.AbsListView;
import android.widget.BaseAdapter;
import android.widget.ListView;

import com.jereh.topnews.R;
import com.jereh.topnews.entity.News;

import java.util.ArrayList;
import java.util.List;

public class BaseAdapterActivity extends AppCompatActivity implements Runnable{

    private ListView listView;
    private BaseAdapter adapter;
    private List<News> list=new ArrayList<>();
    //消息通知
    private Handler handler=new Handler();
    //listview底部
    private View footerView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_base_adapter);
        footerView= LayoutInflater.from(this).inflate(R.layout.view_footer_listview,null);
        listView=(ListView)findViewById(R.id.listView);
        listView.addFooterView(footerView);
//        adapter=new NewsListAdapter(this,list);
        listView.setAdapter(adapter);
        //加载初始化数据
        update();
        //设置一个滚动监听
        listView.setOnScrollListener(new AbsListView.OnScrollListener() {
            /**
             * 滚动状态发生变化的时候
             * @param view
             * @param scrollState
             */
            @Override
            public void onScrollStateChanged(AbsListView view, int scrollState) {
                //当滚动停止的时候
                if(scrollState==SCROLL_STATE_IDLE) {
                    //并且滚动到了最后一个位置
                    if(view.getLastVisiblePosition()==list.size()){
                        update();
                    }
                }
            }

            /**
             * 滚动正在进行的时候
             * @param view
             * @param firstVisibleItem
             * @param visibleItemCount
             * @param totalItemCount
             */
            @Override
            public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {

            }
        });
    }

    /**
     * 可运行脚本方法
     */
    @Override
    public void run() {
        //刷新适配器,显示最新的数据信息
        adapter.notifyDataSetChanged();
    }

    private void update() {
        //实例化一个新的线程，用来下载数据(先休眠3秒钟)，关于耗时的操作（数据的下载），必须要放在子线程中
        Thread thread=new Thread(){
            @Override
            public void run() {
                //子线程工作
                try {
                    Thread.sleep(3000);
                    setData();
                    //消息通知机制
                    //在主线程里刷新ui
                    handler.post(BaseAdapterActivity.this);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        };
        //开启这个线程
        thread.start();


    }

    /**
     * 添加数据
     */
    private void setData(){
        String[] titles={"苹果公司终于低头，正式牵手支付宝，人类已经无法阻止马云脚步了","小学生纸条对话：妈妈气懵了！老师不气还点赞？","当初在春晚很火的他，因为下跪“日本天皇”被冷藏。"};
        int [] img1s={R.mipmap.dog1,R.mipmap.dog2,R.mipmap.dog3};
        int [] img2s={R.mipmap.dog4,R.mipmap.dog5,R.mipmap.dog6};
        int [] img3s={R.mipmap.dog7,R.mipmap.dog8,R.mipmap.dog9};
        String[] authors={"囧囧侠","我吃西红柿","天下霸唱"};
        int[] reply={121,432,532};
        String[] date={"3小时前","4小时前","5小时前"};
        for (int i=0;i<titles.length;i++) {
//            News news=new News(titles[i],img1s[i],img2s[i],img3s[i],authors[i],reply[i],date[i]);
//            list.add(news);
        }
    }
}
